Android安卓签名打包原理,步骤详细讲解(debug,release区别.V1,V2区别) | 您所在的位置:网站首页 › apk v1签名 注入渠道文件 › Android安卓签名打包原理,步骤详细讲解(debug,release区别.V1,V2区别) |
所有的Android应用程序都要求开发人员用一个证书进行数字签名,Android系统不会安装没有进行签名的应用程序。 在应用程序开发期间,由于是以Debug调试模式编译的,因此IDE(ADT)根据会自动用默认的密钥和证书来进行签名,而以Release发布模式编译时,apk文件就不会得到自动签名,这样就需要进行手工签名。 我们使用Android Studio 运行我们的app,无非两种模式:debug和release模式。 debug模式 debug模式使用一个默认的debug.keystore进行签名。 这个默认签名(keystore)是不需要密码的,它的默认位置在C:\Users.Android\debug.keystore,如果不存在Android studio会自动创建它。 例如我的debug.keystore就在C:\Users\Administrator.android\debug.keystore。 release模式 在我们正式发布项目的时候是不能使用debug.keystore的。开发过程中我们也可以使用发布模式运行。可以通过如下设置: BuildVariants-Build Variant-debug/release Android Studio中apk签名打包步骤 1.创建keystore,并生成我们的apk(打包) 第一步: Build —>> Generate Signed APK 第四步:输入key、keystore密码 那对一些人来说,这样也太麻烦了,每次都得输入相关信息,还得进行选择,那么有更简单快捷的方法吗?答案是有的。 我们可以在项目的app目录下的build.gradle中进行签名的配置。 2.release模式配置keystore Project structure-signing,输入已创建的keystore信息 上述的配置虽然配置简单,但是存在不安全性,假如你的项目是开源的,你把签名文件的配置密码之类的信息用明文写在build.gradle里面,那是不是很不安全呢? 可以将签名文件的配置密码之类的信息直接写在local.properties下,因为在Git版本控制的项目中,我们可以看到我们项目project模式根目录下有一个.gitignore的文件,里面的配置大概如下所示 android {}之上新增代码 app/build.gradle下的signingConfigs可以改为: signingConfigs { release { keyAlias keystoreAlias keyPassword keystoreAliasPSW storeFile keyfile storePassword keystorePSW } }设置后Signing中keystore值无需关心 到此,前面配置完成。 签名包V1和V2详细介绍: 使用Android Studio打包签名时,打包选项会有V1 和 V2 两个选项 老版本的AS,只有V1选择。但是新版本的AS,默认勾选的是V2版本。如果只勾选V2版本,打出来的签名包,很多机型会直接提示安装失败。解决办法下面会说。 概述: 在Android 7.0中引入了APK Signature Scheme v2,v1是jar Signature来自JDK。 V1:应该是通过ZIP条目进行验证,这样APK 签署后可进行许多修改 - 可以移动甚至重新压缩文件。 V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。正因如此,现在在编译过程中,我们将压缩、调整和签署合并成一步完成。好处显而易见,更安全而且新的签名可缩短在设备上进行验证的时间(不需要费时地解压缩然后验证),从而加快应用安装速度。 解决方案一: V1和V2的签名使用 1)只勾选V1签名并不会影响什么,但是在7.0上不会使用更安全的验证方式 2)只勾选V2签名7.0以下会直接安装完显示未安装,7.0以上则使用了V2的方式验证 3)同时勾选V1和V2则所有机型都没问题。 解决办法二: 在app的build.gradle的android标签下加入如下 android { signingConfigs { config { keyAlias 'a' keyPassword '123456' storeFile file('a.jks') storePassword '123456' } debug{ v1SigningEnabled true v2SigningEnabled true } release{ v1SigningEnabled true v2SigningEnabled true } } }V2签名包是从Android7.0系统出现的新的签名机制,这个新机制使得apk的签名方式更加安全。首先我们应该尝试把V1和V2两个选项全部勾选,并尽可能的去使用他们,但是如果全部勾选完毕出现了问题,那么我们可以忽略这种新的签名机制,只勾选第一个选项(V1),依旧使用我们之前老的签名机制,也就是说,V1版本更加快速方便。 为什么这里会提到V1、V2的区别。因为这里的美团多渠道打包只能适用于V1版本的签名包!!!但是apk上架到应用宝时(在打包同时勾选V1、V2且没有使用多渠道打包)还是会提示: 本文参考来源: [1]https://www.cnblogs.com/details-666/p/keystore.html |
CopyRight 2018-2019 实验室设备网 版权所有 |